Various types of non-volatile memory (NVM), such as flash memory (e.g., NAND flash memory, NOR flash memory), can be used for mass storage. For example, consumer electronics (e.g., portable media players) use flash memory to store data, including music, videos, images, and other media.
Memory controllers can be used to perform memory operations (e.g., program, read, erase) on NVM. Memory controllers can include a variety of components, including processors, microprocessors, instructions (e.g., software-based program), hardware-based components (e.g., application-specific integrated circuits (ASICs)), volatile memory (e.g., random access memory (RAM)), or any combination thereof. A single memory controller can access multiple units of NVM, such as multiple memory dies (e.g., NAND flash memory dies), over a shared communications channel, e.g., a shared bus. For example, a shared bus can connect each of a plurality of flash memory dies to a memory controller and can be used by such a memory controller to perform memory operations on each of the flash memory dies.